package com.qqtech.qquan.user.service;

import java.util.List;

import com.qqtech.core.frame.service.BaseService;
import com.qqtech.qquan.user.model.UserFriend;
import com.qqtech.qquan.user.model.UserFriendVo;

public interface UserFriendService extends BaseService<UserFriend> {
	
	/**
	 * 是否好友关系
	 * @param userId
	 * @param friendId
	 * @return
	 */
	public boolean isFriend(Integer userId, Integer friendId);
	/**
	 * 查询我的好友（用户id）列表,包括自己
	 * @param userId
	 * @return
	 */
	public List<Integer> queryMyFriendIds(Integer userId);
	
	/**
	 * 查询好友【正常状态】--通过userId1和userId2
	 * @param userId1
	 * @param userId2
	 * @return
	 */
	public UserFriendVo queryNormalFriend(Integer userId1, Integer userId2);
	/**
	 * 查询圈友备注
	 * @param myUserId  我的用户ID
	 * @param friendUserId  圈友用户ID
	 * @return
	 */
	public String getFriendRemark(Integer myUserId, Integer friendUserId);
	
	/**
	 * 查询用户的圈友数量
	 * @param userId
	 * @return
	 */
	public int queryFriendCount(Integer userId);
	/**
	 * 查询好友【正常状态、删除状态】--通过userId1和userId2
	 * @param userId1
	 * @param userId2
	 * @return
	 */
	public UserFriendVo queryFriendRecord(Integer userId1, Integer userId2);
	
	/**
	 *  是否第一次添加好友【没有添加过好友的记录】
	 * @param userId
	 * @return
	 */
	public boolean isFirst2AddFriend(Integer userId);
	
	/**
	 * 删除好友关系
	 * @param userId1
	 * @param userId2
	 * @return
	 */
	int removeFriendShip(Integer userId1, Integer userId2);

	/**
	 * 恢复好友关系【针对以前是好友，但中途删除了】
	 * @param userId1
	 * @param userId2
	 * @return
	 */
	int recoveryFriendShip(Integer userId1, Integer userId2);
}